<?php

namespace app\admin\controller;

use think\Controller;
use think\Request;
use app\admin\model\Category as Cate;
class Category extends Common
{
    /**
     * 显示资源列表
     *
     * @return \think\Response
     */
    public function index()
    {
        $data=Cate::order('sort DESC,id ASC')->select();
        $cate=Cate::getCateAll($data,$pid=0,$level=-1);
        $this->assign('cate',$cate);
        return view();
    }
     /**
     * 排序
     *
     * @return \think\Response
     */
    public function sort()
    {
        if (request()->isPost()) {
            $data=input('post.');
            $res=Cate::getSort($data);
            if ($res) {
                $this->success('更新排序成功','index');
            }
            $this->error('更新排序失败');
        }
    }
    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {   
        $data=Cate::order('sort DESC,id ASC')->select();
        // $data=collection($cateName)->toArray();//把对象转换为数组
        $cate=Cate::getCateAll($data);
        $this->assign('cate',$cate);
        return view('add');
    }

    /**
     * 保存新建的资源
     *
     * @param  \think\Request  $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
       if (request()->isPost()) {
          $data=$request->param();
          if (isset($data['imgfile'])) {
              unset($data['imgfile']);
          }
          if (!isset($data['isshow'])) {
            $data['isshow']=0;
        }
          $res=Cate::create($data);
          if ($res) {
              $this->success('栏目添加成功','index');
          }
          $this->error('栏目添加失败');
       }
       
    }

    /**
     * 显示指定的资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function read($id)
    {
        //
    }

    /**
     * 显示编辑资源表单页.
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function edit($id)
    {   
        if (request()->isPost()) {
            $data=input('post.');
            $cateIds=Cate::getCateIds($id);
            $cateIds[]=$id;//栏目自身id
            //判断更新条件,pid不在当前编辑栏目或者其子分类中
            if (in_array($data['pid'],$cateIds)) {
                $this->error('上级栏目选择错误');
            }
            if (isset($data['imgfile'])) {
                unset($data['imgfile']);
            }
            if (!isset($data['isshow'])) {
                $data['isshow']=0;
            }
            $res=Cate::where('id',$id)->update($data);
            if ($res) {
                $this->success('栏目编辑成功','index');
            }
            $this->error('栏目编辑失败');
        }
        //获取当前栏目信息
        $cateEdit=Cate::get($id);
        $data=Cate::order('sort DESC,id ASC')->select();
       // $data=collection($cateName)->toArray();//把对象转换为数组
        
        $cate=Cate::getCateAll($data);
        //拆分图片地址到数组
        $cateEdit->pics=explode(",", $cateEdit->pic);
        $this->assign(array(
            'cate'=>$cate,
            'cateEdit'=>$cateEdit,
        ));
        return view();
    }

    /**
     * 保存更新的资源
     *
     * @param  \think\Request  $request
     * @param  int  $id
     * @return \think\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * 删除指定资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function delete($id)
    {
        $res=Cate::where('pid',$id)->select();
        if ($res) {
           $this->error('该栏目有下级栏目，不能删除');
        }
        // 查找栏目图片
        $pics=Cate::where('id', $id)->field('pic')->find();
        if (Cate::destroy($id)) {
           //删除栏目图片
            //栏目图片可能是多张，两张之间用‘,’分隔
            //2.拆分栏目图片地址
            $arr_pic=explode(',',$pics->pic);
            foreach ($arr_pic as $v){
                $this->delImg($v);//此方法在公共控制器里
            }
           $this->success('删除栏目成功','index');
        }
        $this->error('删除出错');
    }
 
   
}